(function(){

  const NOREADY   = 0; // объект/поле объект не полный
  const READY     = 1; // объект/поле полный
  
  /*
    example fields object
    id : {
      type    : 'id',
      object  : 'sds',
      field   : 'sdsd',
      ready   : READY,
      value   : 0,
      _UPDATE : true
    },
    _OBJECT_STATUS  : READY,        // объект полный ?
    _DELETE         : false,        // объект на удаление ?
    _UPDATE         : true,         // объект изменили
    _NEW            : false         // объект новый?
  
  */
  
  cache = {}
  
  
  JSDATA = function(name,model,settings,key){
    
    if( typeof cache[name] == 'undefined' ){
      cache[name] = {}
    }
    
    for( i in model ){
      f = model[i]
      switch( f ){
        case 'id' : 
          // print(10)
          break;
      }
    }
    
    return {
      find : function(id){
        // find by cache
        return id
      }
    }
    
  }
  

}).call(this)


function Converter(settings){
  model = {
    id      : 'id',
    count   : 'int',
    string  : 'string'
  }
  //                  name      model  attrs    key
  return new JSDATA('Converter',model,settings,'id')
}


var test = Converter()
var test2 = Converter()

print(test.find("sssss"))
